/**
 * Created by chenyuqi on 2017/7/8.
 * generator 生成器函数的使用案例
 */

var gen = function* (n){
    for (var i = 0; i < 3; i++) {
        n++;
        yield n;// 返回n，并且暂停程序执行，所以循环被中断了。
    }
};

var obj = gen(2); // 只是一个生成器对象，不会自动执行生成器函数，必须调用 .next() 方法才会真正执行。

// 传递 n = 2，循环 i = 0，符合循环条件，返回 n = 3，i 变成 1。
// 所以打印结果是 {value: 3, done: false}
console.log(obj.next());

// 传递 n = 3，循环 i = 1，符合循环条件，返回 n = 4，i 变成 2。
// 所以打印结果是 {value: 4, done: false}
console.log(obj.next());

// 传递 n = 4，循环 i = 2，符合循环条件，返回 n = 5，i 变成 3。
// 所以打印结果是 {value: 3, done: false}
console.log(obj.next());

// 传递 n = 5，循环 i = 3，不符合循环条件，返回 n = undefined，i 还是 3。
// 所以打印结果是 {value: undefined, done: true}
console.log(obj.next());


